
[dbo].[amsp_CMDeleteContent]
CREATE PROCEDURE [dbo].[amsp_CMDeleteContent]
@InContentID numeric,
@InContactID numeric,
@InRevertToPublishVerFlag char(1) = 'N',
@OutPreviousContentID numeric OUTPUT
AS
BEGIN
DECLARE
@WorkflowStatusCode char(1),
@PreviousContentID numeric,
@DeletedFlag char(1),
@NewDefaultContentID numeric,
@NavMenuID numeric,
@SortOrder numeric,
@PreviousSortOrder numeric,
@PreviousNavMenuID numeric,
@NavContentGroupInd char(1),
@DefaultContentID numeric,
@RepublishNavItem bit
SET @DeletedFlag = 'N'
SET @RepublishNavItem = 0
SELECT @WorkflowStatusCode = a.WorkflowStatusCode,
@PreviousContentID = a.PreviousContentID,
@NavMenuID = a.NavMenuID,
@SortOrder = a.SortOrder,
@NavContentGroupInd = b.NavContentGroupInd,
@DefaultContentID = b.ContentID
FROM Content a WITH (NOLOCK), Nav_Menu b WITH (NOLOCK)
WHERE a.ContentID = @InContentID
AND a.NavMenuID = b.NavMenuID
IF @NavContentGroupInd = 'N' AND @InRevertToPublishVerFlag = 'N'
AND @DefaultContentID = @InContentID BEGIN
SELECT TOP 1 @NewDefaultContentID = ContentID
FROM vCurrent_Content WITH (NOLOCK)
WHERE NavMenuID = @NavMenuID
AND ContentID <> @InContentID
ORDER BY SortOrder
UPDATE Nav_Menu
SET ContentID = @NewDefaultContentID
WHERE NavMenuID = @NavMenuID
SET @RepublishNavItem = 1
END
ELSE IF @NavContentGroupInd = 'C' AND @DefaultContentID = @InContentID
UPDATE Nav_Menu
SET ContentID = NULL
WHERE NavMenuID = @NavMenuID
IF @WorkflowStatusCode = 'P' BEGIN
DELETE FROM Publish_Request_Detail WHERE ContentID = @InContentID
UPDATE Content
SET WorkflowStatusCode = 'D',
ContactID = @InContactID
WHERE ContentID = @InContentID
INSERT
INTO Content_Workflow_Log (
ContentID,
WorkflowStatusCode,
ContactID,
ChangeDateTime)
VALUES (@InContentID,
'D',
@InContactID,
CURRENT_TIMESTAMP)
EXEC amsp_CMRequestPublishContent @InContentID, @InContactID, NULL
SET @DeletedFlag = 'Y'
END
ELSE IF @WorkflowStatusCode IN ('W','A','E','Q') BEGIN
BEGIN TRAN
DELETE FROM Publish_Request_Detail WHERE ContentID = @InContentID
DELETE FROM Content_HTML WHERE ContentID = @InContentID
DELETE FROM Content_File WHERE ContentID = @InContentID
DELETE FROM Content_Link WHERE ContentID = @InContentID
DELETE FROM Content_Workflow_Log WHERE ContentID = @InContentID
DELETE FROM Content_Security_Group WHERE ContentID = @InContentID
DELETE FROM Component_Interest_Category WHERE ComponentID = @InContentID
DELETE FROM Tagged_Page_Interest_Category WHERE ContentID = @InContentID
DELETE FROM Content_Change_Request WHERE ContentID = @InContentID
DELETE FROM Content WHERE ContentID = @InContentID
COMMIT TRAN
IF @InRevertToPublishVerFlag = 'N' AND @PreviousContentID IS NOT NULL BEGIN
UPDATE Content
SET WorkflowStatusCode = 'D',
ContactID = @InContactID
WHERE ContentID = @PreviousContentID
INSERT
INTO Content_Workflow_Log (
ContentID,
WorkflowStatusCode,
ContactID,
ChangeDateTime)
VALUES (@PreviousContentID,
'D',
@InContactID,
CURRENT_TIMESTAMP)
EXEC amsp_CMRequestPublishContent @PreviousContentID, @InContactID, NULL
SET @DeletedFlag = 'Y'
END
ELSE IF @NavContentGroupInd = 'N' BEGIN
SELECT @PreviousNavMenuID = NavMenuID,
@PreviousSortOrder = SortOrder
FROM Content WITH (NOLOCK)
WHERE ContentID = @PreviousContentID
IF @PreviousNavMenuID = @NavMenuID AND @PreviousSortOrder != @SortOrder
UPDATE Content
SET SortOrder = @SortOrder
WHERE ContentID = @PreviousContentID
ELSE IF @PreviousNavMenuID != @NavMenuID
EXEC amsp_CMRenumCurrentContent @PreviousNavMenuID
END
END
IF @DeletedFlag = 'Y' AND @NavContentGroupInd = 'N' BEGIN
UPDATE Nav_Menu
SET DirectListComboInd = 'D'
WHERE NavMenuID IN (SELECT b.NavMenuID
FROM Nav_Menu b LEFT OUTER JOIN Content a
ON a.NavMenuID = b.NavMenuID
WHERE a.WorkflowStatusCode IN ('A','P')
GROUP BY b.NavMenuID
HAVING COUNT(a.NavMenuID) = 1)
IF @RepublishNavItem = 1 BEGIN
DECLARE @OutPublishRequestID numeric
EXEC amsp_CMRequestPublish @InNavMenuID = @NavMenuID,
@InContactID = @InContactID,
@InPublishRegenerateInd = 'P',
@OutPublishRequestID = @OutPublishRequestID OUTPUT
END
END
EXEC amsp_CMRenumCurrentContent @NavMenuID
SET @OutPreviousContentID = @PreviousContentID
END
GO
GRANT EXECUTE ON [dbo].[amsp_CMDeleteContent] TO [IMIS]
GO